package com.itfenghuang.day07;

import java.util.*;

public class A0_复习 {
    public static void main(String[] args) {
        /**
         *  1.匿名内部类
         *
         *          本质:  接口/类的子类对象
         *          new  类名/接口名(){重写方法}
         *  2.比较器排序
         *      TreeSet的带参构造中使用匿名内部类进行指定排序规则
         *      TreeMap: 作业
         *  3.数据结构:  哈希表
         *          哈希值: int类型数据
         *  4.HashSet 去重
         *    重写  hashcode  和 equals 方法
         *  5.map  双列集合
         *  常用方法:增删改查
         *      hashmap
         *      treemap
         *
         *      使用TreeSet集合存储字符串 c ab cd qwer 并按照长度排序
         *      如果字符串长度相同,按照字母字典顺序排序
         */
//        TreeSet<SooBo> set = new TreeSet<>();
//        SooBo sooBo1 = new SooBo("c",1);
//        SooBo sooBo2 = new SooBo("ab",2);
//        SooBo sooBo3 = new SooBo("cd",2);
//        SooBo sooBo4 = new SooBo("qwer",4);
//        set.add(sooBo1);
//        set.add(sooBo2);
//        set.add(sooBo3);
//        set.add(sooBo4);
//        System.out.println(set);





        //  2
//        TreeSet<Double> set = new TreeSet<>(new Comparator<Double>() {
//            @Override
//            public int compare(Double o1, Double o2) {
//                int i= o1.compareTo(o2);
//                return  -i;
//            }
//        });
//        set.add(1.1);
//        set.add(5.2);
//        set.add(6.3);
//        set.add(2.5);
//        set.add(5.2);
//        set.add(3.3);
//        System.out.println(set);

        // 3
//        HashMap<Student3, String> map = new HashMap<>();
//        map.put(new Student3("鼠鼠",18),"地中海");
//        map.put(new Student3("鼠二",8),"大西洋");
//        map.put(new Student3("鼠大",58),"太平洋");
//        //遍历
//        Set<Student3> s = map.keySet();
//        for (Student3 key : s) {
//            String s1 = map.get(key);
//            System.out.println(key+""+s1);
//        }
//        Set<Map.Entry<Student3, String>> ent = map.entrySet();
//        Iterator<Map.Entry<Student3, String>> it = ent.iterator();
//        while (it.hasNext()){
//            Map.Entry<Student3, String> next = it.next();
//            System.out.println(next);
//        }

        //4
        HashMap<Object,Object> map = new HashMap<>();
        String str="1.2,3.4,5.6,7.8,5.56,44.55";
        String[] split = str.split(",");
        for (int i = 0; i < split.length; i++) {
                String[] s = split[i].split("\\.");
                map.put(s[0],s[1]);
        }
        System.out.println(map);
        Set<Object> set = map.keySet();
        for (Object o : set) {
            Object o1 = map.get(o);
            System.out.println(o+" "+o1);
        }

        //5
//        HashMap<String, Integer> map = new HashMap<>();
//        String str="If you want to change your fate I think you must come to the dark horse to learn java";
//        String[] strs = str.split(" ");
//        for (String s : strs) {
//            if (map.containsKey(s)){
////                Integer num = map.get(s);
////                num++;
//                map.put(s,map.get(s)+1);
//            }else{
//                map.put(s,1);
//            }
//        }
//        System.out.println(map);

        //6
//        ArrayList<Student0> set = new ArrayList<>();
//        set.add(new Student0("张三","一班",22.47));
//        set.add(new Student0("李四","二班",27.23));
//        set.add(new Student0("王五","一班",20.63));
//        set.add(new Student0("西八","二班",25.40));
//        for (Student0 stu : set) {
//            System.out.println(stu);
//        }
        // 封装classroom  遍历list  找出同一班学生,计算 总分 平均分
        // classroom 赋值 班号 总分 平局分 总人数 存到map集合 key no value classroom


        //扩展题
//        HashMap<Character, Integer> map= new HashMap<>();
//        String str1="aababcabcdabcde";
//        for (int i = 0; i < str1.length(); i++) {
//            char c = str1.charAt(i);
//            //判断是否存在指定的字符在集合中
//            if (map.containsKey(c)){
//                //修改元素个数
//                //先获取集合中a的个数
//                Integer num = map.get(c);
//                num++;
//                map.put(c,num);
//            }else{
//                map.put(c,1);
//            }
//        }
//        System.out.println(map);


        //1
//        ArrayList<String> list = new ArrayList<>();
//        list.add("bbb");
//        list.add("aaa");
//        list.add("ccc");
//        list.add("ddd");
//        System.out.println(list);
//        swap(list,1,3);
//        System.out.println(list);
    }

//    public static void swap(ArrayList list,int i,int j){
//
//        Object o = list.get(i);
//        Object set = list.set(i, j);
//        list.set(j,o);
//
//    }



}
class SooBo implements Comparable<SooBo>{
    private String name;
    private int size;

    public SooBo() {
    }

    public SooBo(String name, int size) {
        this.name = name;
        this.size = size;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getSize() {
        return size;
    }

    public void setSize(int size) {
        this.size = size;
    }

    @Override
    public String toString() {
        return "SooBo{" +
                "name='" + name + '\'' +
                ", size=" + size +
                '}';
    }

    @Override
    public int compareTo(SooBo o) {
        int i = this.size - o.size;
        int i1 = i == 0 ? this.name.compareTo(o.name):i;
        return i1;
    }
}
class Student3{
    private String name;
    private int age;

    public Student3() {
    }

    public Student3(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student3{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}


class Student0{
    private String name;
    private String no;
    private Double score;

    @Override
    public String toString() {
        return "Student0{" +
                "name='" + name + '\'' +
                ", no='" + no + '\'' +
                ", score=" + score +
                '}';
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getNo() {
        return no;
    }

    public void setNo(String no) {
        this.no = no;
    }

    public Double getScore() {
        return score;
    }

    public void setScore(Double score) {
        this.score = score;
    }

    public Student0() {
    }

    public Student0(String name, String no, Double score) {
        this.name = name;
        this.no = no;
        this.score = score;
    }
}
class ClassRoom{
    private String no;
    private Double avgscoree;
    private Double sumscore;
}

